// Hostile.h

#pragma once

#include "Agent.h"

// HOSTILE STATES
enum { PATROL, FROZEN, CAPTURED };

// HOSTILE EVENT TRIGGERS (from Environment, User, NPC's, etc).
enum { SEEN_BY_ROBOT, PC_ATTACK };

class Hostile : public Agent
{

private:
	int currentState;
	int hostileID;

protected:
	bool isFlipped;

public:

	// default constructor.
	Hostile( char * fileName, int id, Pathfinder & pather, Grid<char> & occGrid, 
		float walkSpeed = .05, float turnSpeed = .09 );

	// default destructor.
	~Hostile(void);

	// get hostile ID
	int getID();

	// get state.
	int getState();

	// set state.
	void setState(int state);

	// check state, initiate actions.
	void checkHostileState();

	// check state, initiate actions.
	void checkHostileEvent(int eventID);

	// check if robot is nearby
	bool Hostile::robotNear();

	// update hostile 
	void Hostile::update();

};
